CosyOS-II API 用户参考手册  1.0.3
ur_api.h
浏览该文件的文档.
1 /**************************************************************************/
11 #ifndef __UR_API_H
12 #define __UR_API_H
13 
74 /**************************************************************************/
92 #define uExternTask(task) \
93  sCSV_ExternTask(task)
94 
100 #define dExternTask(task) \
101  dCSV_ExternTask(task)
102 
109 #define uExternTask_Msg(task) \
110  sCSV_ExternTask_Msg(task)
111 
118 #define dExternTask_Msg(task) \
119  dCSV_ExternTask_Msg(task)
120 
140 #define uCreateTask(task, pri, tss, srt, ntm) \
141  sCSV_CreateTask(task, pri, tss, srt, ntm, OS_NULL)
142 
154 #define dCreateTask(task, pri, tss, srt, ntm) \
155  dCSV_CreateTask(task, pri, tss, srt, ntm, OS_NULL)
156 
170 #define uCreateTask_TimInt(tmid, arl, task, pri, tss, srt, ntm) \
171  sCSV_CreateTask_TimInt(tmid, arl, task, pri, tss, srt, ntm)
172 
186 #define dCreateTask_TimInt(tmid, arl, task, pri, tss, srt, ntm) \
187  dCSV_CreateTask_TimInt(tmid, arl, task, pri, tss, srt, ntm)
188 
203 #define uCreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, ntm) \
204  sCSV_CreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, ntm)
205 
220 #define dCreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, ntm) \
221  dCSV_CreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, ntm)
222 
247 #define uStartTask(task, status) \
248  sUSV_StartTask(&u_taskhand_##task, (s_voidvoid_tfp)task, status)
249 
261 #define uStartTask_Ready(task) \
262  uStartTask(task, OS_STATUS_READY)
263 
275 #define uStartTask_Suspend(task) \
276  uStartTask(task, OS_STATUS_SUSPENDED)
277 
297 #define tClearDelay sTSV_ClearDelay
298 
307 #define uSwitchTask(task) \
308  sUSV_SwitchTask(u_taskhandle_##task)
309 
323 #define uResumeTask(task) \
324  sUSV_ResumeTask(u_taskhandle_##task)
325 
339 #define uSuspendTask(task) \
340  sUSV_SuspendTask(u_taskhandle_##task)
341 
353 #define uDeleteTask(task) \
354  sUSV_DeleteTask(u_taskhandle_##task)
355 
370 #define uSetTaskPri(task, npri) \
371  sUSV_SetTaskPri(u_taskhandle_##task, npri)
372 
386 #define uClearBlock(task) \
387  sUSV_ClearBlock(u_taskhandle_##task)
388 
414 #define uSetBlock_tc(task, tc) sUSV_SetBlock(u_taskhandle_##task, tc)
415 
430 #define uSetBlock_ms(task, ms) uSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICKCYCLE)
431 
446 #define uSetBlock_s(task, s) uSetBlock_ms(task, 1000UL * (s))
447 
462 #define uSetBlock_m(task, m) uSetBlock_s(task, 60UL * (m))
463 
478 #define uSetBlock_h(task, h) uSetBlock_m(task, 60UL * (h))
479 
497 #define uYieldTasking su_yield_tasking()
498 
506 #define uSetTaskingPri(npri) sUSV_SetTaskPri(s_task_current, npri)
507 
513 #define uSuspendTasking sUSV_SuspendTask(s_task_current)
514 
520 #define uDeleteTasking sUSV_DeleteTask(s_task_current)
521 
532 #define uResumeSuspend(task) sUSV_ResumeSuspend(u_taskhandle_##task)
533 
539 #define uEndTasking }while(true)
540 
561 #define uDelay_tc(tc) sUSV_Delay(tc)
562 
568 #define uDelay_ms(ms) uDelay_tc((1000UL * (ms)) / SYSCFG_SYSTICKCYCLE)
569 
575 #define uDelay_s(s) uDelay_ms(1000UL * (s))
576 
582 #define uDelay_m(m) uDelay_s(60UL * (m))
583 
589 #define uDelay_h(h) uDelay_m(60UL * (h))
590 
593 /**************************************************************************/
607 #define uCreateHook_TimInt(tmid, arl, hook) \
608  sCSV_CreateHook_TimInt(tmid, arl, hook)
609 
619 #define uCreateHook_TimQry(tmid, event, arl, hook) \
620  sCSV_CreateHook_TimQry(tmid, event, arl, hook)
621 
624 /**************************************************************************/
648 #define uTimInt_tc(tmid, tc) sUSV_TimInt(tmid, tc)
649 
659 #define uTimInt_ms(tmid, ms) uTimInt_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICKCYCLE)
660 
670 #define uTimInt_s(tmid, s) uTimInt_ms(tmid, 1000UL * (s))
671 
681 #define uTimInt_m(tmid, m) uTimInt_s(tmid, 60UL * (m))
682 
692 #define uTimInt_h(tmid, h) uTimInt_m(tmid, 60UL * (h))
693 
702 #define uTimInt_Cancel(tmid) uTimInt_tc(tmid, 0)
703 
712 #define xTimInt_AutoReload(tmid, arl) s_timint_autoreload[tmid] = arl
713 
734 #define uTimQry_tc(tmid, tc) sUSV_TimQry(tmid, tc)
735 
745 #define uTimQry_ms(tmid, ms) uTimQry_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICKCYCLE)
746 
756 #define uTimQry_s(tmid, s) uTimQry_ms(tmid, 1000UL * (s))
757 
767 #define uTimQry_m(tmid, m) uTimQry_s(tmid, 60UL * (m))
768 
778 #define uTimQry_h(tmid, h) uTimQry_m(tmid, 60UL * (h))
779 
788 #define uTimQry_Cancel(tmid) uTimQry_tc(tmid, ~0)
789 
798 #define xTimQry_AutoReload(tmid, arl) s_timqry_autoreload[tmid] = arl
799 
802 /**************************************************************************/
824 #define uExternMut(mut) sCSV_ExternMut(mut)
825 
832 #define uCreateMut(mut) sCSV_CreateMut(mut)
833 
845 #define uTakeMut(mut, tc) sUSV_TakeMut(mut, tc)
846 
852 #define uBackMut(mut) sUSV_BackMut(mut)
853 
869 #define uExternBin(bin) sCSV_ExternBin(bin)
870 
877 #define uCreateBin(bin, init) sCSV_CreateBin(bin, init)
878 
889 #define uLockBin(bin) bin.binary = false
890 
903 #define uWaitBin(bin, tc) sUSV_WaitBin(bin, tc)
904 
914 #define uGiveBin(bin) sUSV_GiveBin(bin)
915 
930 #define uTakeBin(bin, tc) sUSV_TakeBin(bin, tc)
931 
940 #define uBackBin(bin) uGiveBin(bin)
941 
956 #define uExternSem(sem) sCSV_ExternSem(sem)
957 
965 #define uCreateSem(sem, init, max) sCSV_CreateSem(sem, init, max)
966 
975 #define uGiveSem(sem) sUSV_GiveSem(sem)
976 
990 #define uTakeSem(sem, tc) sUSV_TakeSem(sem, tc)
991 
999 #define uBackSem(sem) uGiveSem(sem)
1000 
1003 /**************************************************************************/
1024 #define uRecvTaskMsg(tc) sUSV_RecvTaskMsg(tc)
1025 
1039 #define uSendTaskMsg(task) sUSV_SendTaskMsg(task)
1040 
1043 /**************************************************************************/
1064 #define uExternTionbox(tbox) sCSV_ExternTionbox(tbox)
1065 
1071 #define uCreateTionbox(tbox) sCSV_CreateTionbox(tbox)
1072 
1090 #define uRecvFetion(tbox, tc) sUSV_RecvFetion(tbox, tc)
1091 
1105 #define uSendFetion(tbox, tion) sUSV_SendFetion(tbox, tion)
1106 
1109 /**************************************************************************/
1120 #define uExternMailbox(mbox) sCSV_ExternMailbox(mbox)
1121 
1127 #define uCreateMailbox(mbox) sCSV_CreateMailbox(mbox)
1128 
1142 #define uRecvMail(mbox, tc) sUSV_RecvMail(mbox, tc)
1143 
1153 #define uSendMail(mbox, mail) sUSV_SendMail(mbox, mail)
1154 
1157 /**************************************************************************/
1173 #define uExternQueue_Static(que) sCSV_ExternQueue_Static(que)
1174 
1180 #define uExternQueue_Dynamic(que) sCSV_ExternQueue_Dynamic(que)
1181 
1191 #define uCreateQueue_Static(que, mode, len) sCSV_CreateQueue_Static(que, mode, len)
1192 
1202 #define uCreateQueue_Dynamic(que, mode, len) sCSV_CreateQueue_Dynamic(que, mode, len)
1203 
1218 #define uRecvMsg(que, tc) sUSV_RecvMsg(que, tc)
1219 
1233 #define uSendMsg(que, msg) sUSV_SendMsg(que, msg)
1234 
1237 /**************************************************************************/
1254 #define uExternFlagGroup(group, bits) sCSV_ExternFlagGroup(group, bits)
1255 
1261 #define uDefFlagBit(bit) sDefBitField(bit)
1262 
1268 #define uDefVoidBits(nvb) sDefVoidBits(nvb)
1269 
1276 #define uCreateFlagGroup(group) sCSV_CreateFlagGroup(group)
1277 
1289 #define uWaitFlagGroup(group, tc) sUSV_WaitFlagGroup(group, tc)
1290 
1301 #define uQueryFlagGroup(group) sUSV_QueryFlagGroup(group)
1302 
1311 #define uClearFlagGroup(group) sUSV_ClearFlagGroup(group)
1312 
1322 #define uSetFlagBit(group, bit) sUSV_WriteFlagBit(group, bit, true)
1323 
1333 #define uClearFlagBit(group, bit) sUSV_WriteFlagBit(group, bit, false)
1334 
1343 #define iSetFlagBits(group, nbit) sPSV_WriteFlagBits(group, +, nbit)
1344 
1353 #define iClearFlagBits(group, nbit) sPSV_WriteFlagBits(group, -, nbit)
1354 
1357 /**************************************************************************/
1368 #define xUpdateCopy(code) sUpdateCopy(code)
1369 
1376 #define iWhichGVar_Read s_sign_updatecopy
1377 
1384 #define iWriteGVar(gv, lv) sPSV_WriteGVar((void *)&gv, (void *)&lv, sizeof(gv))
1385 
1393 #define iWriteGAry(gp, lp, size) sPSV_WriteGVar(gp, lp, size)
1394 
1401 #define iWriteGStr(gs, ls) sPSV_WriteGVar(gs, ls, 0)
1402 
1408 #define iPendSVC(fp) sPSV_PendSVC(fp)
1409 
1415 #define iSendSign(sign) sPSV_SendSign(sign)
1416 
1419 /**************************************************************************/
1433 #define uGetTime(t) sUSV_GetTime(t)
1434 
1443 #define uSetTime(t) sUSV_SetTime(t)
1444 
1447 /**************************************************************************/
1467 #define uMalloc(size) sUSV_Malloc(size)
1468 
1477 #define uCalloc(nmemb, size) sUSV_Calloc(nmemb, size)
1478 
1487 #define uRealloc(p, size) sUSV_Realloc(p, size)
1488 
1494 #define uFree(p) sUSV_Free(p)
1495 
1513 #define uCreateMempool sCSV_CreateMempool
1514 
1523 #define uInitMempool(size) sUSV_InitMempool(size)
1524 
1532 #define uTalloc(size) sUSV_Talloc(size)
1533 
1537 #define uFreeMempool sUSV_FreeMempool
1538 
1541 /**************************************************************************/
1565 #define uScheduleLock su_schedule_lock()
1566 
1571 #define uScheduleUnlock su_schedule_unlock()
1572 
1598 #define uKernelLock su_kernel_lock()
1599 
1604 #define uKernelUnlock su_kernel_unlock()
1605 
1617 #if MCUCFG_ISA != __ARM__
1618 
1629 #define xDisableIRQ mxDisableIRQ
1630 
1635 #define xResumeIRQ mxResumeIRQ
1636 
1638 #else
1639 
1650 #define xDisableIRQ mxDisableIRQ
1651 
1657 #define xResumeIRQ(oirq) mxResumeIRQ(oirq)
1658 
1680 #define xMaskingPRI(npri) mxMaskingPRI(npri)
1681 
1687 #define xResumePRI(opri) mxResumePRI(opri)
1688 
1690 #endif
1691 
1693 /**************************************************************************/
1748 #define iDebugSend s_sign_debug_send = true
1749 #define iDebugRecv s_sign_debug_recv = true
1750 
1765 #define xTick_ms(ms) ((1000UL * (ms)) / SYSCFG_SYSTICKCYCLE)
1766 
1772 #define xTick_s(s) xTick_ms(1000UL * (s))
1773 
1779 #define xTick_m(m) xTick_s(60UL * (m))
1780 
1786 #define xTick_h(h) xTick_m(60UL * (h))
1787 
1798 #define iPendSV_Set mPendSV_Set
1799 
1805 #endif